In either ANSI C or pre-ANSI C, the square() function is CALLED (evaluated) from another function by providing an ARGUMENT in parentheses:
new_value = square(old_value);
C functions are CALL BY VALUE, meaning the value passed to the function as its argument is assigned to the corresponding formal parameter when the function is called. Any changes to the value of this formal parameter do NOT affect the value of the argument used for the function call. In the above example, if the square() function had assigned a new value to its parameter x, the value of the variable old_value in the calling function would remain unchanged.
C function calls are expressions, whose value is the value specified in the function's return statement, if any. The above example assigns the value of the function call expression to the variable new_value; however, the function call could as well appear anywhere a C expression is allowed. For example: